Activiti 支持 JUnit 3和4进行单元测试。使用 JUnit 3时, 必须集成 org.activiti.engine.test.ActivitiTestCase。它通过保护的成员变量提供 ProcessEngine 和服务,在测试的 setup() 中, 默认会使用classpath 下的 activiti.cfg.xml 初始化流程引擎。 想使用不同的配置文件,可以重写 getConfigurationResource() 方法。 如果配置文件相同的话,对应的流程引擎会被静态缓存, 就可以用于多个单元测试。

    把这些放在一起,JUnit 3 测试看起来像这样。

    下面的代码演示了 JUnit 4 单元测试并使用了 ActivitiRule 的例子。

    1. @Rule
    2. public ActivitiRule activitiRule = new ActivitiRule();
    3. public void ruleUsageExample() {
    4. RuntimeService runtimeService = activitiRule.getRuntimeService();
    5. runtimeService.startProcessInstanceByKey("ruleUsage");
    6. assertEquals("My Task", task.getName());
    7. taskService.complete(task.getId());
    8. assertEquals(0, runtimeService.createProcessInstanceQuery().count());